import { createRouter, createWebHistory } from 'vue-router'
import { useAuthStore } from '@/stores/auth'
// 定义路由规则
const routes = [
  {
    path: '/home',
    name: 'Home',
    component: () => import('@/views/home/index.vue'), // 懒加载
    meta: { requiresAuth: true } // 需要登录
  },
  {
    path: '/user',
    name: 'User',
    component: () => import('@/views/user/index.vue'),
    meta: { requiresAuth: true } // 需要登录
  },
  {
    path: '/login',
    name: 'Login',
    component: () => import('@/views/login/index.vue'),
    meta: { public: true } // 标记为公开路由
},
  {
    path: '/',
    redirect: '/home',
  }
]

// 创建路由实例
const router = createRouter({
  history: createWebHistory(), // 使用 HTML5 History 模式
  routes,
})
// 全局路由守卫
router.beforeEach((to, from, next) => {
    const authStore = useAuthStore()
    
    // 如果目标路由需要认证且用户未登录
    if (to.meta.requiresAuth && !authStore.isLoggedIn()) {
      next({ name: 'Login' }) // 跳转到登录页
    } 
    // 如果用户已登录但尝试访问登录页
    else if (to.name === 'Login' && authStore.isLoggedIn()) {
      next({ name: 'Home' }) // 跳转到首页
    } 
    else {
      next() // 正常放行
    }
  })
export default router
